<?php

namespace addons\yunxisms;

use app\common\library\Menu;
use think\Addons;

/**
 * 插件
 */
class Yunxisms extends Addons
{

    private $url = 'http://api.sms.cn/sms/?ac=send';
    private $sendError = '';

    public function ConfigInit()
    {
        $this->config = $this->getConfig();
        $this->pwd  = md5($this->config['password'].$this->config['usernmae']);
    }


    /**
     * 短信发送行为
     * @param Sms $params
     * @return  boolean
     */
    public function smsSend(&$params)
    {
        $this->ConfigInit();

        try {
            // 模板ID
            $template = $this->config['template'][$params->event];

            $data['uid'] = $this->config['usernmae'];
            $data['mobile'] = $params['mobile'];
            $data['template'] = $template;
            $data['pwd'] = $this->pwd;
            $data['content'] = json_encode(array('code' => $params['code']));

            $options = [
                CURLOPT_HTTPHEADER => array(
                    'Content-Type: application/json; charset=utf-8'
                )
            ];
            //普通短信发送
            $result = \fast\Http::get($this->url, $data, $options);
            $rsp = json_decode($result, true);

            if ($rsp['stat'] == "100" && $rsp['message'] == '发送成功') {
                return true;
            } else {
                //记录错误信息
                $this->setError($rsp);
                return false;
            }
        } catch (\Exception $e) {
            $this->setError($e->getMessage());
        }
        return false;
    }

    /**
     * 记录失败信息
     * @param [type] $err [description]
     */
    private function setError($err)
    {
        $this->sendError = $err;
    }

    /**
     * 获取失败信息
     * @return [type] [description]
     */
    public function getError()
    {
        return $this->sendError;
    }

    /**
     * 检测验证是否正确
     * @param   Sms $params
     * @return  boolean
     */
    public function smsCheck(&$params)
    {
        return TRUE;
    }


    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        
        return true;
    }

    /**
     * 插件启用方法
     * @return bool
     */
    public function enable()
    {
        
        return true;
    }

    /**
     * 插件禁用方法
     * @return bool
     */
    public function disable()
    {
        
        return true;
    }

    /**
     * 实现钩子方法
     * @return mixed
     */
    public function testhook($param)
    {
        // 调用钩子时候的参数信息
        print_r($param);
        // 当前插件的配置信息，配置信息存在当前目录的config.php文件中，见下方
        print_r($this->getConfig());
        // 可以返回模板，模板文件默认读取的为插件目录中的文件。模板名不能为空！
        //return $this->fetch('view/info');
    }

}
